package com.ada.spark.rddoperator

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
  * 作用：以指定的随机种子随机抽样出数量为fraction的数据，withReplacement表示是抽出的数据是否放回，true为有放回的抽样，false为无放回的抽样，seed用于指定随机数生成器种子。
  */
object Spark09_sample {

    def main(args: Array[String]): Unit = {
        //创建SparkConf
        val conf = new SparkConf().setAppName("Spark09_sample").setMaster("local[*]")
        //创建Spark上下文对象
        val sc = new SparkContext(conf)

        val listRDD: RDD[Int] = sc.makeRDD(1 to 10)

        //从指定集合中进行抽样处理，根据不同的算法进行抽样
        //val sampleRDD: RDD[Int] = listRDD.sample(false, 0.4, 1)
        val sampleRDD: RDD[Int] = listRDD.sample(true, 0.4, 1)

        println(sampleRDD.collect().mkString(","))
        //3,3,6,8,9
    }

}
